package ru.dadle8.service.impl.command.kbju;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.telegram.telegrambots.meta.api.objects.Message;
import org.telegram.telegrambots.meta.api.objects.Update;
import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
import ru.dadle8.model.bot.type.CommandState;
import ru.dadle8.model.db.TelegramProfile;
import ru.dadle8.service.impl.command.AbstractCommandService;

import java.util.Optional;

@Service
@Slf4j
public class KbjuStartCommandServiceImpl extends AbstractCommandService {

    @Override
    public CommandState getCommandState() {
        return CommandState.KBJU_START;
    }

    @Override
    public void processUpdate(Update update) throws TelegramApiException {
        Message inMess = update.getMessage();
        Long chatId = inMess.getChatId();

        Optional<TelegramProfile> dbUser = getUserService().getTelegramProfile(343419196L);

        if (dbUser.isPresent()) {
            String text = """
                    Многоуважаемый тренер Александ!
                    Пишет вам раб бочий - %s
                    Шлет вам просьбу, чтобы вы, О ВЕЛИКИЙ, расчитали ему КБЖУ
                                                    
                    Ниже его сообщение
                    "%s"
                    """.formatted(dbUser.get().fullName(), inMess.getText());
            InlineKeyboardMarkup inlineKeyboardMarkup = getKeyboardService().getInlineKeyboardMarkup("Ответить", 2030, 0, chatId);
            getBot().execute(getMessageHelper().sendMessage(dbUser.get().chatId(), text, inlineKeyboardMarkup));

            // for current user
            getBot().execute(getMessageHelper().sendMessage(chatId, "Отправил тренеру!"));
            getStorage().clearState(chatId);
        }
    }
}
